package com.lovi.map_;

import java.util.*;

@SuppressWarnings({"all"})
public class MapFor2 {
    public static void main(String[] args) {

        Map map = new HashMap();
        map.put("lovi", new Book("", 100));//OK
        map.put("lovi", "loviGF");//替换-> 一会分析源码
        map.put("lovi2", "lovi2GF");//OK
        map.put("lovi3", "lovi2GF");//OK
        map.put("lovi4", null);//OK
        map.put(null, "lovi5");//OK
        map.put("lovi6", "lovi6GF");//OK
        map.put("lovi7", "lovi7GF");
        /*
        每组都需要for和迭代器取出
        //(1) 增强for
        //(2) 迭代器
         */

        //第一组: 先取出 所有的Key , 通过Key 取出对应的Value
        Set keySet = map.keySet();
        //(1) 增强for
//        for (Object o : keySet) {
//            System.out.println(o+"-"+map.get(o));
//        }
        //(2) 迭代器
//        Iterator iterator = keySet.iterator();
//        while (iterator.hasNext()){
//            Object o = iterator.next();
//            System.out.println(o+"-"+map.get(o));
//        }
        //第二组: 把所有的values取出
        Collection values = map.values();
        //(1) 增强for
//        for (Object value : values) {
//            System.out.println(value);
//        }

        //(2) 迭代器
//        Iterator iterator = values.iterator();
//        while (iterator.hasNext()){
//            Object o = iterator.next();
//            System.out.println(o);
//        }

        //第三组: 通过EntrySet 来获取 k-v
        Set entrySet = map.entrySet();
        //(1) 增强for
//        for (Object o : entrySet) {
//            Map.Entry m = (Map.Entry) o;
//            System.out.println(m.getKey() + "-" + m.getValue());
//        }
        //(2) 迭代器
        Iterator iterator = entrySet.iterator();
        while (iterator.hasNext()){
            Map.Entry next = (Map.Entry) iterator.next();
            System.out.println(next.getKey() + "-" + next.getValue());
        }

    }
}
